package com.gitee.mrj.aiboot.annotation.config.sf.ui.widget;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
@Documented
public @interface SFAutoCompleteWidget {

    /**
     * 在文字框中显示提示讯息
     */
    String placeholder() default "";

    /**
     * 是否根据输入项进行筛选，默认只对 `label` 属性执行不区分大小定 `indexOf` 过滤
     * 当其为一个函数时，会接收 `inputValue` `option` 两个参数，当 `option` 符合筛选条件时，应返回 `true`，反之则返回 `false`。
     */
    boolean filterOption() default true;


    /**
     * 去抖时间，当实时数据源时默认最少 `50`，单位：毫秒
     */
    int debounceTime() default Integer.MIN_VALUE;

    /**
     * 是否默认高亮第一个选项，默认：`true`
     */
    boolean defaultActiveFirstOption() default true;

    /**
     * 使用键盘选择选项的时候把选中项回填到输入框中，默认：`false`
     */
    boolean backfill() default false;

    /**
     * 自定义宽度单位 `px`，默认：触发元素宽度
     */
    int nzWidth() default Integer.MIN_VALUE;
}
